package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"strings"
	"time"
)

var connection net.Conn
var err error

//简单的tcpclient
func main() {

	// for {
	// 	// connection, err = net.Dial("tcp", "127.0.0.1:30001")
	// 	// if err != nil {
	// 	// 	fmt.Println("连接失败，重试..")
	// 	// 	time.Sleep(1000)
	// 	// 	continue
	// 	// }

	// 	// fmt.Println("连接成功..")

	// 	if doConn() {
	// 		break
	// 	}

	// }

	connServer()

	reader := bufio.NewReader(os.Stdin)
	for {
		fmt.Println("请输入..")
		input, err := reader.ReadString('\n')
		if err != nil {
			fmt.Println("输入发生错误:", err)
			continue
		}
		input = strings.Trim(input, "\r\n")
		if input == "exit" {
			fmt.Println("退出")
			break
		}
		_, err = connection.Write([]byte(input + "\n"))
		if err != nil {
			fmt.Println("发生错误，重新连接")
			connServer()
			continue
		}
	}
}

func connServer() {
	for {
		if doConn() {
			break
		}
	}
}

func doConn() bool {
	connection, err = net.Dial("tcp", "127.0.0.1:30001")
	if err != nil {
		fmt.Println("连接失败，重试..")
		time.Sleep(1000)
		return false
	}

	fmt.Println("连接成功..")
	return true
}
